import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

const store_a={
    state:{
        str:'store_a'
    }
}

export default new Vuex.Store({
  strict: process.env.NODE_ENV != 'production', //严格模式，防止直接修改state 项目打包时要设置成false 所以判断下enc.NODE_ENV是否为开发模式
  state: {
    a: 12,
    b: 12
  }, //核心：数据
  mutations: {
    add(state, n) {
      state.a += n;
    },
    set_a(state,a){
        state.a=a
    },
    set_b(state,b){
        state.b=b
    },
    addA(state,n){
        state.a+=n
    },
    addB(state,n){
        state.b+=n
    }
  }, //不能直接修改state 应该操作mutations
  actions: {
    // add(context,n){
    add({commit}, n) {
      commit('add', n)
    },
    set_a({commit}, a) {
      commit('set_a', a)
    },
    set_b({commit}, b) {
      commit('set_b', b)
    },
    addA({commit}, a) {
      commit('addA', a)
    },
    addB({commit}, b) {
      commit('addB', b)
    }
  }, //获取数据
  getters: {
    count(state){
        return state.a+state.b;
    }
  }, //读数据
  modules: {
      mode_a:store_a
  } //可以把store拆分成好多的命名空间来用  所有数据要是都堆积在state里是很麻烦的事情
})
